Systems and Methods for Evaluating Health Care Provider Referrals

ABSTRACT

In one embodiment, a method comprises accessing a physician-referral-network, which comprises a number of nodes and a number of edges connecting the nodes, each of the edges representing a single degree of separation between the nodes. Each node represents a physician, and each edge represents a patient-referral between two physicians corresponding to the connected nodes. One or more references indicating a patient-referral from a first physician to a second physician is received. The physician-referral-network is updated based on the received reference. One or more performance-scores from the second physicians may be received, each performance-score corresponding to a patient-referral. A referral-score is calculated for the first physician based on the performance-scores. The method further comprises determining if a referral-score for a first physician is below a threshold referral-score.

PRIORITY

This application claims the benefit, under 35 U.S.C. §119(e), of U.S.Provisional Patent Application No. 61/876105, filed 10 Sep. 2013, whichis incorporated herein by reference.

TECHNICAL FIELD

This disclosure generally relates to search engines, and in particular,search engines for healthcare providers.

BACKGROUND

Users seeking medical care or treatment may wish to select a particularphysician or health-care provider to visit to receive the care ortreatment. Factors that may be considered when trying to select aparticular provider may include costs, location, specialty, theprovider's experience, etc. Currently, information about health-careproviders is available via user-generated reviews on review websites. Auser seeking a particular type of health-care provider or a specificmedical treatment may be able to search the review websites forphysicians in the particular type or performing the specific treatment.However, user-generated reviews are highly subjective, and may haveincomplete information about a particular provider, or incompleteinformation about the available providers within a given geographicarea.

Some users may have health insurance through their employer. Theemployer may maintain an administrator responsible for overseeing theemployee health-care plan. The employer-administrator may set policymeasures regarding which health-care providers should be visited by theemployees on the health-care plan.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example network environment associated with amatching-engine system.

FIG. 2 illustrates an example computer system.

FIG. 3 illustrates an example network environment.

FIG. 4 illustrates an example method of using a matching-engine system.

FIG. 5 illustrates an example method of calculating a performance scoreusing a performance engine.

FIG. 6A illustrates an example embodiment of a performance enginecomparing a base concept with one or more sub-concept groups.

FIG. 6B illustrates an example embodiment of a performance enginematching a physician with one or more patients.

FIG. 6C illustrates an example embodiment of a performance enginematching one or more patients of a base concept with correspondingsub-concept groups.

FIG. 6D illustrates an example embodiment of a performance enginematching one or more patients of a base concept with correspondingsub-concept groups.

FIG. 6E illustrates an example embodiment of a performance enginematching sub-concept groups with corresponding patient groups.

FIG. 6F illustrates an example embodiment of a performance enginematching patient groups with corresponding RVU groups.

FIG. 6G illustrates an example embodiment of a performance enginematching sub-concept groups with corresponding RVU groups.

FIG. 6H illustrates an example embodiment of a physician's RVU for oneor more sub-concepts compared with the distribution of RVU costs for apeer group of the physician.

FIG. 7 illustrates an example method of calculating an experience indexfor a physician.

FIG. 8A illustrates an example embodiments of an experience enginedetermining a group of physicians based on specialization and geographicarea.

FIG. 8B illustrates an example embodiment of an experience enginedetermining a case volume for a particular specialization.

FIG. 8C illustrates an example embodiment of an experience enginedetermining a variety-score for physicians in a specialization.

FIG. 9 illustrates an example embodiment of the matching engineselecting a set of physicians based on parameters for performance scoresand experience indices.

FIG. 10A-10E illustrate example embodiments of a user interface forpresenting recommended physicians to a user of a matching engine system.

FIG. 11 illustrates an example embodiment of aphysician-referral-network.

FIG. 12 illustrates an example method of updating aphysician-referral-network.

DESCRIPTION OF EXAMPLE EMBODIMENTS System Overview

FIG. 1 illustrates an example network environment 100 associated with amatching-engine system. Network environment 100 includes a client system130, a matching-engine system 160, and a third-party system 170connected to each other by a network 110. Although FIG. 1 illustrates aparticular arrangement of client system 130, matching-engine system 160,third-party system 170, and network 110, this disclosure contemplatesany suitable arrangement of client system 130, matching-engine system160, third-party system 170, and network 110. As an example and not byway of limitation, two or more of client system 130, matching-enginesystem 160, and third-party system 170 may be connected to each otherdirectly, bypassing network 110. As another example, two or more ofclient system 130, matching-engine system 160, and third-party system170 may be physically or logically co-located with each other in wholeor in part. Moreover, although FIG. 1 illustrates a particular number ofclient systems 130, matching-engine systems 160, third-party systems170, and networks 110, this disclosure contemplates any suitable numberof client systems 130, matching-engine systems 160, third-party systems170, and networks 110. As an example and not by way of limitation,network environment 100 may include multiple client system 130,matching-engine systems 160, third-party systems 170, and networks 110.

This disclosure contemplates any suitable network 110. As an example andnot by way of limitation, one or more portions of network 110 mayinclude an ad hoc network, an intranet, an extranet, a virtual privatenetwork (VPN), a local area network (LAN), a wireless LAN (WLAN), a widearea network (WAN), a wireless WAN (WWAN), a metropolitan area network(MAN), a portion of the Internet, a portion of the Public SwitchedTelephone Network (PSTN), a cellular telephone network, or a combinationof two or more of these. Network 110 may include one or more networks110.

Links 150 may connect client system 130, matching-engine system 160, andthird-party system 170 to communication network 110 or to each other.This disclosure contemplates any suitable links 150. In particularembodiments, one or more links 150 include one or more wireline (such asfor example Digital Subscriber Line (DSL) or Data Over Cable ServiceInterface Specification (DOCSIS)), wireless (such as for example Wi-Fior Worldwide Interoperability for Microwave Access (WiMAX)), or optical(such as for example Synchronous Optical Network (SONET) or SynchronousDigital Hierarchy (SDH)) links. In particular embodiments, one or morelinks 150 each include an ad hoc network, an intranet, an extranet, aVPN, a LAN, a WLAN, a WAN, a WWAN, a MAN, a portion of the Internet, aportion of the PSTN, a cellular technology-based network, a satellitecommunications technology-based network, another link 150, or acombination of two or more such links 150. Links 150 need notnecessarily be the same throughout network environment 100. One or morefirst links 150 may differ in one or more respects from one or moresecond links 150.

In particular embodiments, client system 130 may be an electronic deviceincluding hardware, software, or embedded logic components or acombination of two or more such components and capable of carrying outthe appropriate functionalities implemented or supported by clientsystem 130. As an example and not by way of limitation, a client system130 may include a computer system such as a desktop computer, notebookor laptop computer, netbook, a tablet computer, e-book reader, GPSdevice, camera, personal digital assistant (PDA), handheld electronicdevice, cellular telephone, smartphone, other suitable electronicdevice, or any suitable combination thereof. This disclosurecontemplates any suitable client systems 130. A client system 130 mayenable a network user at client system 130 to access network 110. Aclient system 130 may enable its user to communicate with other users atother client systems 130.

In particular embodiments, client system 130 may include a web browser132, such as MICROSOFT INTERNET EXPLORER, GOOGLE CHROME or MOZILLAFIREFOX, and may have one or more add-ons, plug-ins, or otherextensions, such as TOOLBAR or YAHOO TOOLBAR. A user at client system130 may enter a Uniform Resource Locator (URL) or other addressdirecting the web browser 132 to a particular server (such as server162, or a server associated with a third-party system 170), and the webbrowser 132 may generate a Hyper Text Transfer Protocol (HTTP) requestand communicate the HTTP request to server. The server may accept theHTTP request and communicate to client system 130 one or more Hyper TextMarkup Language (HTML) files responsive to the HTTP request. Clientsystem 130 may render a webpage based on the HTML files from the serverfor presentation to the user. This disclosure contemplates any suitablewebpage files. As an example and not by way of limitation, webpages mayrender from HTML files, Extensible Hyper Text Markup Language (XHTML)files, or Extensible Markup Language (XML) files, according toparticular needs. Such pages may also execute scripts such as, forexample and without limitation, those written in JAVASCRIPT, JAVA,MICROSOFT SILVERLIGHT, combinations of markup language and scripts suchas AJAX (Asynchronous JAVASCRIPT and XML), and the like. Herein,reference to a webpage encompasses one or more corresponding webpagefiles (which a browser may use to render the webpage) and vice versa,where appropriate.

In particular embodiments, matching-engine system 160 may be anetwork-addressable computing system that can host an online healthcareprovider search engine. Matching-engine system 160 may generate, store,receive, and send patient data, healthcare provider data, medicalinsurance data, or other suitable data related to the healthcareprovider search engine, subject to laws and regulations regardingpatient data. Matching-engine system 160 may identify and rankhealthcare providers in general, or according to one or more specifiedcriteria, based on a verity of information. Matching-engine system 160may be accessed by the other components of network environment 100either directly or via network 110. In particular embodiments,matching-engine system 160 may receive inputs from one or more of aperformance engine or an experience engine (which may be independentsystems, or sub-systems of matching-engine system 160). The performanceengine may receive data about healthcare provider performance for aparticular episode of care (e.g., from the healthcare providersdirectly, insurance companies, governmental agencies, patients, etc.)and calculate an estimated performance rating for an episode of carecompared to a peer group of healthcare providers. The experience enginemay receive data about healthcare provider experience (e.g., from publicrecords, surveys, healthcare providers, rating sites, insurancecompanies, governmental agencies, patients, etc.) and calculate anestimated experience of the healthcare provider in general, or accordingto one or more specified criteria. In particular embodiments,matching-engine system 160 may include one or more servers 162. Eachserver 162 may be a unitary server or a distributed server spanningmultiple computers or multiple datacenters. Servers 162 may be ofvarious types, such as, for example and without limitation, web server,news server, mail server, message server, advertising server, fileserver, application server, exchange server, database server, proxyserver, another server suitable for performing functions or processesdescribed herein, or any combination thereof. In particular embodiments,each server 162 may include hardware, software, or embedded logiccomponents or a combination of two or more such components for carryingout the appropriate functionalities implemented or supported by server162. In particular embodiments, matching-engine system 164 may includeone or more data stores 164. Data stores 164 may be used to storevarious types of information. In particular embodiments, the informationstored in data stores 164 may be organized according to specific datastructures. In particular embodiments, each data store 164 may be arelational, columnar, correlation, or other suitable database. Althoughthis disclosure describes or illustrates particular types of databases,this disclosure contemplates any suitable types of databases. Particularembodiments may provide interfaces that enable a client system 130, amatching-engine system 160, or a third-party system 170 to manage,retrieve, modify, add, or delete, the information stored in data store164.

In particular embodiments, matching-engine system 160 may be capable oflinking a variety of entities. As an example and not by way oflimitation, matching-engine system 160 may enable users to interact witheach other as well as receive content from third-party systems 170 orother entities, or to allow users to interact with these entitiesthrough an application programming interfaces (API) or othercommunication channels.

In particular embodiments, a third-party system 170 may include one ormore types of servers, one or more data stores, one or more interfaces,including but not limited to APIs, one or more web services, one or morecontent sources, one or more networks, or any other suitable components,e.g., that servers may communicate with. A third-party system 170 may beoperated by a different entity from an entity operating matching-enginesystem 160. In particular embodiments, however, matching-engine system160 and third-party systems 170 may operate in conjunction with eachother to provide search engine services to users of matching-enginesystem 160 or third-party systems 170. In this sense, matching-enginesystem 160 may provide a platform, or backbone, which other systems,such as third-party systems 170, may use to provide search engineservices and functionality to users across the Internet.

In particular embodiments, matching-engine system 160 also includesuser-generated content objects, which may enhance a user's interactionswith matching-engine system 160. User-generated content may includeanything a user can add, upload, send, or “post” to matching-enginesystem 160. In particular embodiments, user-generated content maycomprise user-profile information. As an example and not by way oflimitation, a user communicates posts to matching-engine system 160 froma client system 130. Posts may include data such as health records,other textual data, location information, photos, videos, links, orother similar data or content. Content may also be added tomatching-engine system 160 by a third-party (for example, fromhealthcare providers, insurance companies, etc.) through a suitablecommunication channel.

In particular embodiments, matching-engine system 160 may include avariety of servers, sub-systems, programs, modules, logs, and datastores. In particular embodiments, matching-engine system 160 mayinclude one or more of the following: a web server, action logger,API-request server, relevance-and-ranking engine, content-objectclassifier, notification controller, action log,third-party-content-object-exposure log, inference module,authorization/privacy server, search module, advertisement-targetingmodule, user-interface module, user/patient-profile store, connectionstore, third-party content store, or location store. Matching-enginesystem 160 may also include suitable components such as networkinterfaces, security mechanisms, load balancers, failover servers,management-and-network-operations consoles, other suitable components,or any suitable combination thereof. In particular embodiments,matching-engine system 160 may include one or more user-profile storesfor storing user profiles. A user/patient profile may include, forexample, medical information, biographic information, demographicinformation, behavioral information, social information, or other typesof descriptive information, such as work experience, educationalhistory, hobbies or preferences, interests, affinities, or location. Aweb server may be used for linking matching-engine system 160 to one ormore client systems 130 or one or more third-party system 170 vianetwork 110. The web server may include a mail server or other messagingfunctionality for receiving and routing messages between matching-enginesystem 160 and one or more client systems 130. An API-request server mayallow a third-party system 170 to access information frommatching-engine system 160 by calling one or more APIs. An action loggermay be used to receive communications from a web server about a user'sactions on or off matching-engine system 160. In conjunction with theaction log, a third-party-content-object log may be maintained of userexposures to third-party-content objects. A notification controller mayprovide information regarding content objects to a client system 130.Information may be pushed to a client system 130 as notifications, orinformation may be pulled from client system 130 responsive to a requestreceived from client system 130. Authorization servers may be used toenforce one or more privacy settings of the users of matching-enginesystem 160. A privacy setting of a user determines how particularinformation associated with a user can be shared. The authorizationserver may allow users to opt in to or opt out of having their actionslogged by matching-engine system 160 or shared with other systems (e.g.,third-party system 170), such as, for example, by setting appropriateprivacy settings. Third-party-content-object stores may be used to storecontent objects received from third parties, such as a third-partysystem 170. Location stores may be used for storing location informationreceived from client systems 130 associated with users.

Systems and Methods

FIG. 2 illustrates an example computer system 200. In particularembodiments, one or more computer systems 200 perform one or more stepsof one or more methods described or illustrated herein. In particularembodiments, one or more computer systems 200 provide functionalitydescribed or illustrated herein. In particular embodiments, softwarerunning on one or more computer systems 200 performs one or more stepsof one or more methods described or illustrated herein or providesfunctionality described or illustrated herein. Particular embodimentsinclude one or more portions of one or more computer systems 200.Herein, reference to a computer system may encompass a computing device,and vice versa, where appropriate. Moreover, reference to a computersystem may encompass one or more computer systems, where appropriate.

This disclosure contemplates any suitable number of computer systems200. This disclosure contemplates computer system 200 taking anysuitable physical form. As example and not by way of limitation,computer system 200 may be an embedded computer system, a system-on-chip(SOC), a single-board computer system (SBC) (such as, for example, acomputer-on-module (COM) or system-on-module (SOM)), a desktop computersystem, a laptop or notebook computer system, an interactive kiosk, amainframe, a mesh of computer systems, a mobile telephone, a personaldigital assistant (PDA), a server, a tablet computer system, or acombination of two or more of these. Where appropriate, computer system200 may include one or more computer systems 200; be unitary ordistributed; span multiple locations; span multiple machines; spanmultiple data centers; or reside in a cloud, which may include one ormore cloud components in one or more networks. Where appropriate, one ormore computer systems 200 may perform without substantial spatial ortemporal limitation one or more steps of one or more methods describedor illustrated herein. As an example and not by way of limitation, oneor more computer systems 200 may perform in real time or in batch modeone or more steps of one or more methods described or illustratedherein. One or more computer systems 200 may perform at different timesor at different locations one or more steps of one or more methodsdescribed or illustrated herein, where appropriate.

In particular embodiments, computer system 200 includes a processor 202,memory 204, storage 206, an input/output (I/O) interface 208, acommunication interface 210, and a bus 212. Although this disclosuredescribes and illustrates a particular computer system having aparticular number of particular components in a particular arrangement,this disclosure contemplates any suitable computer system having anysuitable number of any suitable components in any suitable arrangement.

In particular embodiments, processor 202 includes hardware for executinginstructions, such as those making up a computer program. As an exampleand not by way of limitation, to execute instructions, processor 202 mayretrieve (or fetch) the instructions from an internal register, aninternal cache, memory 204, or storage 206; decode and execute them; andthen write one or more results to an internal register, an internalcache, memory 204, or storage 206. In particular embodiments, processor202 may include one or more internal caches for data, instructions, oraddresses. This disclosure contemplates processor 202 including anysuitable number of any suitable internal caches, where appropriate. Asan example and not by way of limitation, processor 202 may include oneor more instruction caches, one or more data caches, and one or moretranslation lookaside buffers (TLBs). Instructions in the instructioncaches may be copies of instructions in memory 204 or storage 206, andthe instruction caches may speed up retrieval of those instructions byprocessor 202. Data in the data caches may be copies of data in memory204 or storage 206 for instructions executing at processor 202 tooperate on; the results of previous instructions executed at processor202 for access by subsequent instructions executing at processor 202 orfor writing to memory 204 or storage 206; or other suitable data. Thedata caches may speed up read or write operations by processor 202. TheTLBs may speed up virtual-address translation for processor 202. Inparticular embodiments, processor 202 may include one or more internalregisters for data, instructions, or addresses. This disclosurecontemplates processor 202 including any suitable number of any suitableinternal registers, where appropriate. Where appropriate, processor 202may include one or more arithmetic logic units (ALUs); be a multi-coreprocessor; or include one or more processors 202. Although thisdisclosure describes and illustrates a particular processor, thisdisclosure contemplates any suitable processor.

In particular embodiments, memory 204 includes main memory for storinginstructions for processor 202 to execute or data for processor 202 tooperate on. As an example and not by way of limitation, computer system200 may load instructions from storage 206 or another source (such as,for example, another computer system 200) to memory 204. Processor 202may then load the instructions from memory 204 to an internal registeror internal cache. To execute the instructions, processor 202 mayretrieve the instructions from the internal register or internal cacheand decode them. During or after execution of the instructions,processor 202 may write one or more results (which may be intermediateor final results) to the internal register or internal cache. Processor202 may then write one or more of those results to memory 204. Inparticular embodiments, processor 202 executes only instructions in oneor more internal registers or internal caches or in memory 204 (asopposed to storage 206 or elsewhere) and operates only on data in one ormore internal registers or internal caches or in memory 204 (as opposedto storage 206 or elsewhere). One or more memory buses (which may eachinclude an address bus and a data bus) may couple processor 202 tomemory 204. Bus 212 may include one or more memory buses, as describedbelow. In particular embodiments, one or more memory management units(MMUs) reside between processor 202 and memory 204 and facilitateaccesses to memory 204 requested by processor 202. In particularembodiments, memory 204 includes random access memory (RAM). This RAMmay be volatile memory, where appropriate. Where appropriate, this RAMmay be dynamic RAM (DRAM) or static RAM (SRAM). Moreover, whereappropriate, this RAM may be single-ported or multi-ported RAM. Thisdisclosure contemplates any suitable RAM. Memory 204 may include one ormore memories 204, where appropriate. Although this disclosure describesand illustrates particular memory, this disclosure contemplates anysuitable memory.

In particular embodiments, storage 206 includes mass storage for data orinstructions. As an example and not by way of limitation, storage 206may include a hard disk drive (HDD), a floppy disk drive, flash memory,an optical disc, a magneto-optical disc, magnetic tape, or a UniversalSerial Bus (USB) drive or a combination of two or more of these. Storage206 may include removable or non-removable (or fixed) media, whereappropriate. Storage 206 may be internal or external to computer system200, where appropriate. In particular embodiments, storage 206 isnon-volatile, solid-state memory. In particular embodiments, storage 206includes read-only memory (ROM). Where appropriate, this ROM may bemask-programmed ROM, programmable ROM (PROM), erasable PROM (EPROM),electrically erasable PROM (EEPROM), electrically alterable ROM (EAROM),or flash memory or a combination of two or more of these. Thisdisclosure contemplates mass storage 206 taking any suitable physicalform. Storage 206 may include one or more storage control unitsfacilitating communication between processor 202 and storage 206, whereappropriate. Where appropriate, storage 206 may include one or morestorages 206. Although this disclosure describes and illustratesparticular storage, this disclosure contemplates any suitable storage.

In particular embodiments, I/O interface 208 includes hardware,software, or both, providing one or more interfaces for communicationbetween computer system 200 and one or more I/O devices. Computer system200 may include one or more of these I/O devices, where appropriate. Oneor more of these I/O devices may enable communication between a personand computer system 200. As an example and not by way of limitation, anI/O device may include a keyboard, keypad, microphone, monitor, mouse,printer, scanner, speaker, still camera, stylus, tablet, touch screen,trackball, video camera, another suitable I/O device or a combination oftwo or more of these. An I/O device may include one or more sensors.This disclosure contemplates any suitable I/O devices and any suitableI/O interfaces 208 for them. Where appropriate, I/O interface 208 mayinclude one or more device or software drivers enabling processor 202 todrive one or more of these I/O devices. I/O interface 208 may includeone or more I/O interfaces 208, where appropriate. Although thisdisclosure describes and illustrates a particular I/O interface, thisdisclosure contemplates any suitable I/O interface.

In particular embodiments, communication interface 210 includeshardware, software, or both providing one or more interfaces forcommunication (such as, for example, packet-based communication) betweencomputer system 200 and one or more other computer systems 200 or one ormore networks. As an example and not by way of limitation, communicationinterface 210 may include a network interface controller (NIC) ornetwork adapter for communicating with an Ethernet or other wire-basednetwork or a wireless NIC (WNIC) or wireless adapter for communicatingwith a wireless network, such as a WI-FI network. This disclosurecontemplates any suitable network and any suitable communicationinterface 210 for it. As an example and not by way of limitation,computer system 200 may communicate with an ad hoc network, a personalarea network (PAN), a local area network (LAN), a wide area network(WAN), a metropolitan area network (MAN), or one or more portions of theInternet or a combination of two or more of these. One or more portionsof one or more of these networks may be wired or wireless. As anexample, computer system 200 may communicate with a wireless PAN (WPAN)(such as, for example, a BLUETOOTH WPAN), a WI-FI network, a WI-MAXnetwork, a cellular telephone network (such as, for example, a GlobalSystem for Mobile Communications (GSM) network), or other suitablewireless network or a combination of two or more of these. Computersystem 200 may include any suitable communication interface 210 for anyof these networks, where appropriate. Communication interface 210 mayinclude one or more communication interfaces 210, where appropriate.Although this disclosure describes and illustrates a particularcommunication interface, this disclosure contemplates any suitablecommunication interface.

In particular embodiments, bus 212 includes hardware, software, or bothcoupling components of computer system 200 to each other. As an exampleand not by way of limitation, bus 212 may include an AcceleratedGraphics Port (AGP) or other graphics bus, an Enhanced Industry StandardArchitecture (EISA) bus, a front-side bus (FSB), a HYPERTRANSPORT (HT)interconnect, an Industry Standard Architecture (ISA) bus, an INFINIBANDinterconnect, a low-pin-count (LPC) bus, a memory bus, a Micro ChannelArchitecture (MCA) bus, a Peripheral Component Interconnect (PCI) bus, aPCI-Express (PCIe) bus, a serial advanced technology attachment (SATA)bus, a Video Electronics Standards Association local (VLB) bus, oranother suitable bus or a combination of two or more of these. Bus 212may include one or more buses 212, where appropriate. Although thisdisclosure describes and illustrates a particular bus, this disclosurecontemplates any suitable bus or interconnect.

Herein, a computer-readable non-transitory storage medium or media mayinclude one or more semiconductor-based or other integrated circuits(ICs) (such, as for example, field-programmable gate arrays (FPGAs) orapplication-specific ICs (ASICs)), hard disk drives (HDDs), hybrid harddrives (HHDs), optical discs, optical disc drives (ODDs),magneto-optical discs, magneto-optical drives, floppy diskettes, floppydisk drives (FDDs), magnetic tapes, solid-state drives (SSDs),RAM-drives, SECURE DIGITAL cards or drives, any other suitablecomputer-readable non-transitory storage media, or any suitablecombination of two or more of these, where appropriate. Acomputer-readable non-transitory storage medium may be volatile,non-volatile, or a combination of volatile and non-volatile, whereappropriate.

This disclosure contemplates one or more computer-readable storage mediaimplementing any suitable storage. In particular embodiments, acomputer-readable storage medium implements one or more portions ofprocessor 202 (such as, for example, one or more internal registers orcaches), one or more portions of memory 204, one or more portions ofstorage 206, or a combination of these, where appropriate. In particularembodiments, a computer-readable storage medium implements RAM or ROM.In particular embodiments, a computer-readable storage medium implementsvolatile or persistent memory. In particular embodiments, one or morecomputer-readable storage media embody software. Herein, reference tosoftware may encompass one or more applications, bytecode, one or morecomputer programs, one or more executables, one or more instructions,logic, machine code, one or more scripts, or source code, and viceversa, where appropriate. In particular embodiments, software includesone or more application programming interfaces (APIs). This disclosurecontemplates any suitable software written or otherwise expressed in anysuitable programming language or combination of programming languages.In particular embodiments, software is expressed as source code orobject code. In particular embodiments, software is expressed in ahigher-level programming language, such as, for example, C, Perl, or asuitable extension thereof. In particular embodiments, software isexpressed in a lower-level programming language, such as assemblylanguage (or machine code). In particular embodiments, software isexpressed in JAVA. In particular embodiments, software is expressed inHyper Text Markup Language (HTML), Extensible Markup Language (XML),JavaScript Object Notation (JSON) or other suitable markup language.

FIG. 3 illustrates an example network environment 300. This disclosurecontemplates any suitable network environment 300. As an example and notby way of limitation, although this disclosure describes and illustratesa network environment 300 that implements a client-server model, thisdisclosure contemplates one or more portions of a network environment300 being peer-to-peer, where appropriate. Particular embodiments mayoperate in whole or in part in one or more network environments 300. Inparticular embodiments, one or more elements of network environment 300provide functionality described or illustrated herein. Particularembodiments include one or more portions of network environment 300.Network environment 300 includes a network 310 coupling one or moreservers 320 and one or more clients 330 to each other. This disclosurecontemplates any suitable network 310. As an example and not by way oflimitation, one or more portions of network 310 may include an ad hocnetwork, an intranet, an extranet, a virtual private network (VPN), alocal area network (LAN), a wireless LAN (WLAN), a wide area network(WAN), a wireless WAN (WWAN), a metropolitan area network (MAN), aportion of the Internet, a portion of the Public Switched TelephoneNetwork (PSTN), a cellular telephone network, or a combination of two ormore of these. Network 310 may include one or more networks 310.

Links 350 couple servers 320 and clients 330 to network 310 or to eachother. This disclosure contemplates any suitable links 350. As anexample and not by way of limitation, one or more links 350 each includeone or more wireline (such as, for example, Digital Subscriber Line(DSL) or Data Over Cable Service Interface Specification (DOCSIS)),wireless (such as, for example, Wi-Fi or Worldwide Interoperability forMicrowave Access (WiMAX)) or optical (such as, for example, SynchronousOptical Network (SONET) or Synchronous Digital Hierarchy (SDH)) links350. In particular embodiments, one or more links 350 each includes anintranet, an extranet, a VPN, a LAN, a WLAN, a WAN, a MAN, acommunications network, a satellite network, a portion of the Internet,or another link 350 or a combination of two or more such links 350.Links 350 need not necessarily be the same throughout networkenvironment 300. One or more first links 350 may differ in one or morerespects from one or more second links 350.

This disclosure contemplates any suitable servers 320. As an example andnot by way of limitation, one or more servers 320 may each include oneor more advertising servers, applications servers, catalog servers,communications servers, database servers, exchange servers, fax servers,file servers, game servers, home servers, mail servers, message servers,news servers, name or DNS servers, print servers, proxy servers, soundservers, standalone servers, web servers, or web-feed servers. Inparticular embodiments, a server 320 includes hardware, software, orboth for providing the functionality of server 320. As an example andnot by way of limitation, a server 320 that operates as a web server maybe capable of hosting websites containing web pages or elements of webpages and include appropriate hardware, software, or both for doing so.In particular embodiments, a web server may host HTML or other suitablefiles or dynamically create or constitute files for web pages onrequest. In response to a Hyper Text Transfer Protocol (HTTP) or otherrequest from a client 330, the web server may communicate one or moresuch files to client 330. As another example, a server 320 that operatesas a mail server may be capable of providing e-mail services to one ormore clients 330. As another example, a server 320 that operates as adatabase server may be capable of providing an interface for interactingwith one or more data stores (such as, for example, data stores 340described below). Where appropriate, a server 320 may include one ormore servers 320; be unitary or distributed; span multiple locations;span multiple machines; span multiple datacenters; or reside in a cloud,which may include one or more cloud components in one or more networks.

In particular embodiments, one or more links 350 may couple a server 320to one or more data stores 340. A data store 340 may store any suitableinformation, and the contents of a data store 340 may be organized inany suitable manner. As an example and not by way or limitation, thecontents of a data store 340 may be stored as a dimensional, flat,hierarchical, network, object-oriented, relational, XML, NoSQL, Hadoop,or other suitable database or a combination or two or more of these. Adata store 340 (or a server 320 coupled to it) may include adatabase-management system or other hardware or software for managingthe contents of data store 340. The database-management system mayperform read and write operations, delete or erase data, perform datadeduplication, query or search the contents of data store 340, orprovide other access to data store 340.

In particular embodiments, one or more servers 320 may each include oneor more search engines 322. A search engine 322 may include hardware,software, or both for providing the functionality of search engine 322.As an example and not by way of limitation, a search engine 322 mayimplement one or more search algorithms to identify network resources inresponse to search queries received at search engine 322, one or moreranking algorithms to rank identified network resources, or one or moresummarization algorithms to summarize identified network resources. Inparticular embodiments, a ranking algorithm implemented by a searchengine 322 may use a machine-learned ranking formula, which the rankingalgorithm may obtain automatically from a set of training dataconstructed from pairs of search queries and selected Uniform ResourceLocators (URLs), where appropriate.

In particular embodiments, one or more servers 320 may each include oneor more data monitors/collectors 324. A data monitor/collection 324 mayinclude hardware, software, or both for providing the functionality ofdata collector/collector 324. As an example and not by way oflimitation, a data monitor/collector 324 at a server 320 may monitor andcollect network-traffic data at server 320 and store the network-trafficdata in one or more data stores 340. In particular embodiments, server320 or another device may extract pairs of search queries and selectedURLs from the network-traffic data, where appropriate.

This disclosure contemplates any suitable clients 330. A client 330 mayenable a user at client 330 to access or otherwise communicate withnetwork 310, servers 320, or other clients 330. As an example and not byway of limitation, a client 330 may have a web browser, such asMICROSOFT INTERNET EXPLORER or MOZILLA FIREFOX, and may have one or moreadd-ons, plug-ins, or other extensions, such as GOOGLE TOOLBAR or YAHOOTOOLBAR. A client 330 may be an electronic device including hardware,software, or both for providing the functionality of client 330. As anexample and not by way of limitation, a client 330 may, whereappropriate, be an embedded computer system, an SOC, an SBC (such as,for example, a COM or SOM), a desktop computer system, a laptop ornotebook computer system, an interactive kiosk, a mainframe, a mesh ofcomputer systems, a mobile telephone, a PDA, a netbook computer system,a server, a tablet computer system, or a combination of two or more ofthese. Where appropriate, a client 330 may include one or more clients330; be unitary or distributed; span multiple locations; span multiplemachines; span multiple datacenters; or reside in a cloud, which mayinclude one or more cloud components in one or more networks.

Matching Engine

In particular embodiments, a user of matching-engine system 160 may senda query to matching-engine system 160 for a recommendation of one ormore physicians. The query may comprise a specific medical condition,one or more symptoms, one or more names of a medical specialty, or atype of medical procedure. As an example and not by way of limitation, auser may send a query regarding physicians to treat plantar fasciitis.As another example, a user may send a query merely stating that the userhas a headache and nausea, and request one or more physicians to helpwith the user's symptoms. As another example, a user may send a queryfor physicians able to perform a colonoscopy. In particular embodiments,a user may send separate queries for one or more symptoms, conditions,or treatments. In particular embodiments, a user may send a single querycontaining several distinct symptoms, conditions, or treatments. As anexample and not by way of limitation, a user may submit a query thatcomprises an indication that the user needs an annual physical, and alsothat the user has stomach pains. Matching-engine system 160 may providethe user with a set of recommended physicians for an annual physical,and a second set of recommended physicians for the stomach pain. Inparticular embodiments, matching-engine system 160 may send the user asingle set of recommended physicians, wherein the set comprisesrecommended physicians for the annual physical and recommendedphysicians for the stomach pain. In particular embodiments, there may bean overlap between the two different sets of recommended physicians.

In particular embodiments, matching-engine system 160 may recommend oneor more physicians for a user to visit within a particular geographicregion in which the user resides or works. In particular embodiments,the geographic region may be a metropolitan statistical area, or MSA.MSAs are defined metropolitan regions determined by the United StatesOffice of Management and Budget. As an example and not by way oflimitation, matching-engine system 160 may recommend physicians who arelocated within the Los Angeles-Long Beach-Anaheim MSA. In particularembodiments, matching-engine system 160 may recommend one or morephysicians who are within a preset distance of the location of the user.As an example and not by way of limitation, matching-engine system 160may only recommend physicians who are within 25 miles of the user. Inparticular embodiments, the user may specify a distance or region inwhich to look for physicians to recommend. As an example and not by wayof limitation, a user may indicate that she only wants to viewrecommended physicians within Orange County, Calif., without receivingrecommendations for physicians within Los Angeles, Calif.

In particular embodiments, parameters for recommending one or morephysicians to a user may be provided by an administrator of theparticular user's health plan. As an example and not by way oflimitation, if a user receives her health insurance coverage through heremployment, and her employer has an administrator responsible fordetermining the health-care coverage to be provided by the employer,then the administrator may specify an acceptable range of parameterswithin which to recommend physicians. For example, the administrator maywish to specify a range of acceptable performance scores for physicians,acceptable monetary costs for physicians when conducting particulartreatments or procedures, or an acceptable range of experience indicesfor physicians. In particular embodiments, performance score mayrepresent a physician's efficiency in time and resources in treating apatient for a particular condition or disease, or in applying aparticular treatment method. A performance score may be of interest toboth a patient and the patient's insurance provider as an indicationthat a physician will require less time, office visits, resources, etc.In particular embodiments, an experience index for a physician mayindicate the physician's experience in dealing with a particularcondition or disease, or in performing a particular treatment method. Inparticular embodiments, the experience index may also represent how manydifferent types of conditions within a condition group a physician hasseen. These parameters may allow the administrator to direct userstowards physicians that the administrator has determined arecost-effective physicians, or in the alternative, physicians that areabove a threshold baseline of competency while remaining affordable forthe employer. In particular embodiments, when a user of the health-careplan run by that administrator submits a query for one or morephysicians, matching-engine system 160 may only present physiciansmeeting the acceptable parameters specified by the administrator. Inparticular embodiments, matching-engine system 160 may include otherphysicians, but may rank the physicians meeting the administrator'sparameters more highly.

FIG. 4 illustrates an example method for using matching-engine system160 to provide one or more recommended physicians to a particular user.At step 410, matching-engine system 160 may receive from anadministrator a set of parameters. In particular embodiments, the set ofparameters may comprise a range of acceptable performance scores, arange of acceptable experience indices, or a range of acceptable costs.At step 420, matching-engine system 160 may store the set of parametersin a database, associating the set of parameters with a group of one ormore users corresponding to the administrator. As an example and not byway of limitation, the group of users may comprise the employees on anemployer-provided health-care plan. At step 430, matching-engine system160 may receive from one of the group of users a request, wherein therequest comprises at least the user's geographic location, and one ormore symptoms or a treatment method. As an example and not by way oflimitation, user Alice may send a request which includes informationindicating that she resides in Mountain View, Calif., and she hasstomach pains and nausea. As another example, user Zeke may send arequest which includes information indicating that his location isEvanston, Ill., and he is seeking a physician for rotator cuff surgery.At step 440, matching-engine system 160 may determine at least one baseconcept associated with the user's request. As an example and not by wayof limitation, in the examples given above, matching-engine system 160may determine a base concept of “rotator cuff surgery” for Zeke, and abase concept of “stomach ache” for Alice. At step 450, matching-enginesystem 160 may generate a set of one or more physicians to recommend tothe user for the determined base concept. Matching-engine system 160 mayalso consider the location of the user and locations of the physicians,and the performance scores and experience indices for each physicianrelevant to the base concept, and whether they are within the parametersdefined by the administrator. At step 460, matching-engine system 160may send the set of recommended physicians to the user.

Particular embodiments may repeat one or more steps of the method ofFIG. 4, where appropriate. Although this disclosure describes andillustrates particular steps of the method of FIG. 4 as occurring in aparticular order, this disclosure contemplates any suitable steps of themethod of FIG. 4 occurring in any suitable order. Moreover, althoughthis disclosure describes and illustrates particular components,devices, or systems carrying out particular steps of the method of FIG.4, this disclosure contemplates any suitable combination of any suitablecomponents, devices, or systems carrying out any suitable steps of themethod of FIG. 4.

In particular embodiments, matching-engine system 160 may receive as aninput one or more performance scores associated with particularphysicians in generating a set of recommended physicians.Matching-engine system 160 may receive from a physician or health-careprovider one or more Current Procedural Terminology (CPT) codes, each ofwhich corresponds to a medical, surgical, or diagnostic service. As anexample and not by way of limitation, matching-engine system 160 mayreceive a CPT code for patient Alice after a visit to Dr. Bob, which mayindicate that patient Alice received a standard blood panel test.Matching-engine system 160 may also receive one or more InternationalClassification of Diseases (ICD) codes, each of which corresponds to aparticular disease or condition. In particular embodiments, an insuranceprovider may not pay for medical services provided to a particularinsured patient unless the CPT codes for the services provided correlatewith the ICD codes assigned to that particular patient visit. As anexample and not by way of limitation, an insurance provider may rejectfor payment the charges for a CPT code indicating a colonoscopy, if theonly ICD code assigned to the patient visit indicates that the visit wasfor a sore throat.

In particular embodiments, the costs incurred by a physician in treatinga patient may be considered in monetary cost. In particular embodiments,another metric may be used to calculate costs incurred for treatmentwhich accounts for monetary costs as well as labor costs and overallresources involved for the treatment. As an example and not by way oflimitation, matching-engine system 160 may consider the costs in termsof resource value units, or RVUs. As an example and not by way oflimitation, matching-engine system 160 may use RVUs as used by theUnited States Medicare reimbursement formula for physician services. AnRVU may represent a non-monetary relative measure which is scaled by thegeographic region in which the treatment occurred. As an example and notby way of limitation, in monetary costs, the same medical procedure maybe more expensive in a high cost-of-living area compared to a lowcost-of-living area. By adjusting for the cost-of-living or the averagecost of medical services in a given area, the RVU may comprise alocation-independent measure of costs. In particular embodiments, an RVUmay be assigned to each CPT code for particular treatments. Inparticular embodiments, RVUs may be assigned in advance, such thatmatching-engine system 160 may receive a CPT code and automatically addthe appropriate RVU to the episode of care.

In particular embodiments, matching-engine system 160 may receive themonetary costs for a particular service or treatment as an additionalcost factor to the RVU. In particular embodiments, the cost may be areported average monetary cost per patient per year for a particularbase concept, which may be calculated based on the received cost figuresduring the previous year. In particular embodiments, the average costsper patient per year may be an expected cost for treating the patient.This expected cost may then be compared against the actual costsincurred by a physician in treating the patient, by converting the RVUsincurred in treatment back into monetary costs. As an example and not byway of limitation, the average cost per year for treating a particulardisease may be expected to be $7,500. If a physician treating thedisease may incur costs of 120 RVUs, and the conversion rate for an RVUin this particular specialty is estimated at $55.00/RVU, then the actualcosts incurred by this physician in treating the disease may be120*$55.00, or $6,600. Comparing the RVU costs to the estimated costsmay show that this physician is $900 more efficient in treating thisparticular disease than expected. In particular embodiments,matching-engine system 160 may include other factors in calculating aperformance score, such as administrative costs or non-physicianservices costs. As an example and not by way of limitation, if a firsttreatment method requires five office visits, and a second treatmentmethod requires two office visits, matching-engine system 160 maydetermine that the first treatment method will have higher additionalcosts in terms of time required by the patient, and administrative costsin processing additional office visits.

In particular embodiments, a performance score for a physician mayreflect an indication of the amount of healthcare resources used by thephysician or health-care provider in delivery of care for treatingpatients with the same or similar clinical complexity. Complextreatments may result in more resources being consumed than simple casesregardless of physician skills, but there may be a variation in how muchresources are used. The performance score may identify physicians whoare using relatively less resources than the peer group, and by howmuch. Determination of the performance score is discussed in furtherdetail below.

In particular embodiments, matching-engine system 160 may also receiveand use as an input one or more experience indices associated with aparticular physician. The experience index for a physician may be anindication of how much experience a physician has in a particularspecialty or with a particular disease or condition, based on the numberof patients seen with the particular specialty or disease or condition,and the severity of each patient seen. In particular embodiments,matching-engine system 160 may consider the case volume seen by aparticular physician within a particular specialty, which may representa proportional volume of cases for a particular disease seen by theparticular physician versus all other physicians in the same specialty.As an example and not by way of limitation, if there were 100 separatepatient visits for diagnosis or treatment of non-Hodgkins lymphoma inthe Chicago metropolitan area in 2013, and 25 of those visits were toDr. Moore, matching-engine system 160 may consider Dr. Moore's casevolume for non-Hodgkins lymphoma to be 0.25, or 25 divided by the 100total cases. In particular embodiments, the experience index may alsorepresent a variety of diseases seen by a particular physician within aparticular specialty. In particular embodiments, the experience indexmay consider three factors: volume, variety, and severity. The severitymay be measured by a Boolean scale: chronic, or non-chronic, using theChronic Conditions Indication database from the Healthcare CostInstitute. Determination of the experience index is discussed in detailfurther below.

Performance Engine

In particular embodiments, a performance engine of matching-enginesystem 160 may determine one or more performance scores for a particularphysician based on data received about episodes of care associated withthe particular physician. An episode of care may represent allinteractions between a patient and a physician for a particular diseaseor treatment. In particular embodiments, using an episode of care as thebase point for determining performance scores may be more accurate thandetermining performance merely based on cost. As an example and not byway of limitation, if Dr. Alan has a lower average cost than Dr. Bradfor medical services, but Dr. Alan requires more tests and more officevisits to treat the same disease as Dr. Brad, the individual servicecosts may point to Dr. Alan as having better performance (e.g. lowercost for the same services), but the overall episode of care may pointto Dr. Brad as having better overall performance in treating thedisease, which may be a better indicator of doctor efficiency.

In particular embodiments, an episode of care may comprise a collectionof all clinically related procedure and diagnosis codes for treating anindex disease or condition for a particular patient from the onset ofthe index disease or condition to closure. An episode of care maycomprise a record of all encounters between a patient and a health-careprovider. In particular embodiments, an episode of care may be definedover a single calendar year. As an example and not by way of limitation,if a patient Alice starts visiting a doctor Bob for her Type-2 diabeteson Jul. 1, 2013, and continues to see Dr. Bob for her diabetes withmonthly visits through August, 2014, matching-engine system 160 mayconsider Alice to have two episodes of care with Dr. Bob: one episode ofcare for diabetes in 2013, and a second episode of care for diabetes in2014. In particular embodiments, a particular patient may only beassociated with a single episode of care at a time. If the patientstarts visiting a new doctor, or starts being treated for a new primarycondition, a new episode of care may be determined. As an example andnot by way of limitation, if Alice has been visiting Dr. Bob for herdiabetes through August 2014, but then breaks her leg and starts seeingDr. Bob for treatment of the broken leg for two months, matching-enginesystem 160 may determine a new episode of care for Alice and Dr. Bobwith a new primary condition of “broken leg” from August 2014 to October2014. If Alice's leg heals and she continues seeing Dr. Bob for herdiabetes, matching-engine system 160 may determine a third episode ofcare for Alice and Dr. Bob for diabetes. In particular embodiments,matching-engine system 160 may determine a single episode of care for2014 for Alice and Dr. Bob for a primary condition of diabetes, with atime period of January to August 2014, and October to December 2014.

In particular embodiments, an episode of care may be associated with asingle base concept. The base concept may represent the primary diseaseor condition being treated by the visits comprising the episode of care.In particular embodiments, the base concept may be identified using aclinical taxonomy. A clinical taxonomy may comprise a table of medicalterminology with corresponding laymen's terms for the medical term. Asan example and not by way of limitation, a patient may visit a doctorfor a “broken leg.” Matching-engine system 160 may determine record thevisit as an episode of care with a base concept of “tibial plateaufracture.” In particular embodiments, matching-engine system 160 mayadditionally record one or more sub-concepts associated with the baseconcept. Each sub-type may represent an additional diagnoses, conditionsor diseases that the patient has which could introduce complications intreatment of the base concept. As an example and not by way oflimitation, if a patient who is making a physician visit for a brokenleg also has osteoporosis, matching-engine system 160 may record anepisode of care as having a base concept of “tibial plateau fracture,”with a sub-concept of “osteoporosis.” Including the sub-types may ensurethat physicians are not evaluated simply based on how they are able totreat the base concept. The simultaneous presence of additionalconditions in a patient may likely create additional resource burdens,which may lead to additional treatment costs. As an example and not byway of limitation, if Dr. Bob is treating a patient for a broken legwith no other sub-concepts involved, and Dr. Charles is treating apatient for a broken leg with a sub-concept of osteoporosis, Dr. Charlesmay require additional resources in treating the base concept conditionof the broken leg. However, comparing the two episodes of care withoutany adjustment for the sub-concept may not accurately represent eachphysician's performance in treating a broken leg, and may lead to falsenegatives in evaluation of the physicians.

In particular embodiments, the performance score for a particularphysician may be represented as a relational score for the particularphysician with respect to similarly-situated physicians. In particularembodiments, similarly-situated physicians may additionally be definedas seeing a similar set of patients which are characterized byattributes of age, gender, place of service, MSA, and diseaseco-morbidity. In particular embodiments, additional attributes may beused to determine similarly-situated physicians. In particularembodiments, matching-engine system 160 may consider physicians havingthe same primary specialty. As an example and not by way of limitation,matching-engine system 160 may generate a score that indicates theparticular physician's efficiency and performance compared to otherphysicians that the user may also receive recommendations for. Forexample, if Drs. Irene, John, and Kyle are the three nephrologists in aparticular geographic region, any performance score for Dr. John mayrepresent his relative performance when compared to Drs. Irene and Kyle.

FIG. 5 illustrates an example method for determining a performance scorefor a physician with respect to a particular episode of care. The methodmay begin at step 510, where matching-engine system 160 may receive anindication of an episode of care for a particular physician and aparticular patient. The indication may comprise a number of diagnosisand /treatment codes, such as a set of related CPT codes and ICD codes.Based on the received codes, matching-engine system 160 may determine abase concept for the episode of care. In particular embodiments,matching-engine system 160 may determine one or more sub-concepts thatare associated with the base concept of the episode of care. As anexample and not by way of limitation, matching-engine system 160 mayreceive CPT and/or ICD codes within the episode of care that indicatethat the patient has at least one secondary condition. At step 520,matching-engine system 160 may calculate a cost factor for the episodeof care for the particular physician. In particular embodiments, thecost factor may be the monetary cost of the treatments within theepisode of care. In particular embodiments, the cost factor may be anormalized value, such as RVU. In particular embodiments,matching-engine system 160 may consider both the absolute monetary costsexpended in treating the episode of care, as well as the RVU. At step530, matching-engine system 160 may determine at least one specialty ofthe physician, and a geographic area that the physician practices in. Atstep 540, the specialty and geographic area of the physician may be usedto determine a peer group of one or more other physicians who share acommon specialty and practice within the same geographic area as theparticular physician. As an example and not by way of limitation, if Dr.Chad is a cardiologist practicing in Denver, Colo., his peer group maybe all cardiologists practicing in the Denver area. At step 550,matching-engine system 160 may calculate a performance score for theparticular physician with respect to the base concept and thesub-concepts by comparing the cost factor for the episode of care withthe cost factors incurred by the peer group of physicians for the samebase concept and sub-concepts. As an example and not by way oflimitation, if Dr. Chad has an episode of care for a patient with amyocardial infarction and a sub-concept of diabetes, matching-enginesystem 160 may compare the costs incurred by Dr. Chad for this episodeof care with the costs associated with other episodes of care by theother physicians in the peer group with a base concept of myocardialinfarction and a sub-concept of diabetes. In particular embodiments,matching-engine system 160 may further determine whether the otherphysicians in the peer group are seeing patients with similar attributessuch as age, gender, place of service, and MSA.

Particular embodiments may repeat one or more steps of the method ofFIG. 5, where appropriate. Although this disclosure describes andillustrates particular steps of the method of FIG. 5 as occurring in aparticular order, this disclosure contemplates any suitable steps of themethod of FIG. 5 occurring in any suitable order. Moreover, althoughthis disclosure describes and illustrates particular components,devices, or systems carrying out particular steps of the method of FIG.5, this disclosure contemplates any suitable combination of any suitablecomponents, devices, or systems carrying out any suitable steps of themethod of FIG. 5.

FIG. 6A illustrates an example embodiment of the performance enginewhich considers one or more sub-concept groups 622-628 which may beassociated with a base concept 610. In particular embodiments, asub-concept group 622-628 may represent a distinct group of one or moresub-concepts, i.e. secondary conditions. In the example of FIG. 6A,sub-concept groups 624 and 628 share a common sub-concept, but differ inthe other sub-concepts. In particular embodiments, several differentbase concepts 610 may have common sub-concepts 622-628 associated witheach base concept. As an example and not by way of limitation, formultiple base concepts covering cardiovascular issues, each base conceptmay have similar sub-concepts corresponding to secondary conditions thatwill affect treatment, e.g. high blood pressure, diabetes, etc. Therelationships between each base concept 610 and sub-concepts 622-628 maybe stored on a data store of matching-engine system 160. As new baseconcept+sub-concept combinations are recorded by matching-engine system160 (e.g. based on newly received episodes of care), the relationshipdata store may be updated.

FIG. 6B illustrates an example embodiment of the performance enginewhich considers one or more patients 642-648 who have visited aparticular physician 630 for an episode of care with base concept 610.In particular embodiments, the set of one or more patients 642-648 mayrepresent all patients recorded for physician 630 with respect to baseconcept 610. In particular embodiments, matching-engine system 160 mayconsider a subset of patients 642-648 based on time. As an example andnot by way of limitation, matching-engine system 160 may only considerpatients 642-648 who have made at least one visit to physician 630 inrelation to the episode of care within the last six months. Inparticular embodiments, as new patients come to visit physician 630 inrelation to base concept 610, new patients 642-648 may be added.

FIG. 6C, 6D, and 6E illustrate an example embodiment of the performanceengine wherein each patient 642-648 is associated with one or moresub-concept groups 622-628 for the base concept 610. In particularembodiments, matching-engine system 160 may correlate a patient to thesub-concepts based on the CPT codes and ICD codes received from thehealth-care provider with respect to the particular patient. Inparticular embodiments, a physician or a health-care provider mayprovide an indication of one or more sub-concepts to matching-enginesystem 160. In particular embodiments, each patient 642-648 may beassociated with a single sub-concept group 622-628, wherein eachsub-concept group represents a distinct group of one or moresub-concepts, i.e. secondary conditions. In particular embodiments, eachsub-concept group 622-628 may be associated with one or more patients642-648. In the example of FIG. 6E, each sub-concept group 622-628 isassociated with a patient group 652-658, wherein each patient group652-658 comprises all patients 642-648 who have the associatedsub-concept group 622-628.

FIG. 6F and 6G illustrate an example embodiment of the performanceengine wherein the total RVU costs for each patient are averaged foreach patient group 652-658 corresponding to sub-concept groups 622-628.In particular embodiments, the RVU costs for a single patient may bedetermined by the CPT codes sent with respect to the particular patientduring the time of the episode of care. As an example and not by way oflimitation, if an episode of care comprises four office visits, eachvisit having three CPT codes associated with them, then all twelve CPTcodes associated with the episode of care may be included. In particularembodiments, as discussed above other cost factors may be included as apart of RVU, such as the actual monetary cost, non-physician services,administrative costs, or costs relating to time or number of patientvisits. In the example of FIG. 6F, the total RVU costs for each patientmay be included in RVU groups 662-668 corresponding to patient groups652-658. The value for each RVU group 662-668 may represent an averagevalue of the individual RVU costs for each patient in the group. In theexample of FIG. 6G, the RVU groups 662-668 may be correlated with theirrespective sub-concept groups 622-628. In particular embodiments, theaverage RVU cost may be a weighted average, with patients seen morerecently being weighted more heavily than patients seen during anearlier period of time.

FIG. 6H illustrates an example embodiment of the performance enginecomparing the RVU groups for a particular physician with the RVU groupcosts for the peer group of physicians. As discussed above, the peergroup of physicians may comprise all physicians in the same specialtyand geographic region as the particular physician. In particularembodiments, matching-engine system 160 may calculate the RVU groupcosts 662-668 for each physician in the peer group. Based on the RVUgroup costs for each physician, matching-engine system 160 may calculatea distribution of RVU costs 672-678 for the peer group of physicians.The distributions 672-678 may indicate the variation in RVU costs forphysicians in treating the particular base concept 610 and sub-conceptgroups 622-628. In particular embodiments, matching-engine system 160may calculate the mean RVU cost for the peer group. In the example ofFIG. 6H, for distribution 672, line 673 may represent the mean RVU costfor the peer group of physicians comprising distribution 672. Inparticular embodiments, the mean RVU cost may be weighted by the numberof patients seen by each of the peer group physicians. As an example andnot by way of limitation, if Dr. Paul has seen 5 patients for baseconcept 610 with sub-concept group 624, and Dr. Quinn has seen 50patients for the same base concept 610 and sub-concept group 624,matching-engine system 160 may weight the average RVU cost for Dr. Quinnmore greatly than the average RVU cost for Dr. Paul in determining theaverage RVU cost for the peer group. In particular embodiments, in orderto determine the performance score for the particular physician, theaverage RVU cost for the particular physician may be compared againstthe distribution and mean of the peer group. In the example of FIG. 6H,line 675 may represent the particular physician's RVU costs for patientsin that sub-concept group. In particular embodiments, the performancescore may be based on the distance between the physician's RVU cost 675,and the mean RVU cost 673. In particular embodiments, the distance maybe represented in units of standard deviations of the distribution 672from the mean RVU cost 673. In particular embodiments, if a particularphysician's individual RVU is more efficient (e.g. lower-cost) than thepeer group, the performance score may be positive; if the individual RVUis less efficient (higher costs), then the performance score may be anegative value.

In particular embodiments, matching-engine system 160 may then determinea set of performance scores for each sub-concept group 622-628, whereineach performance score corresponds to the difference between theparticular physician's RVU costs within the sub-concept group, comparedto the average RVU costs of the peer group. In particular embodiments,matching-engine system 160 may then aggregate the individual performancescores into a total performance score for a particular base concept 610.In particular embodiments, matching-engine system 160 may weight eachperformance score based on the number of patients the particularphysician has treated with the underlying sub-concept group. Theaggregate performance score may then be calculated as a weightedaverage. As an example and not by way of limitation, if Dr. Tina has aperformance score of 0.5 in sub-concept group 622 with ten patientsseen, and has a performance score of 2.5 in sub-concept group 624 withtwenty patients seen, then matching-engine system 160 may calculate theaggregate performance score to be ((0.5*10)+(2.5*20))/30 =2.00.

In particular embodiments, matching-engine system 160 may calculate aweighted average for the aggregate performance score based on the numberof patients seen by the peer group of physicians for each sub-concepttype. This may reflect the overall likelihood that a user seeking aphysician within the base concept has a particular sub-concept type. Asan example and not by way of limitation, matching-engine system 160 maydetermine in the example above that a total of 100 patients were treatedby physicians in Dr. Tina's peer group with sub-concept group 622, and atotal of 50 patients were treated with sub-concept group 624. In thisexample, if a new user is seeking treatment for the same base concept,matching-engine system 160 may determine that a user is twice as likelyto have sub-concept group 622 as 624. The weighted average aggregateperformance score in this example for Dr. Tina may then be((0.5*100)+(2.5*50))/150=1.167.

Experience Index

In particular embodiments, matching-engine system 160 may consider theexperience index of physicians in generating or ranking the set ofphysicians for recommendation to the user. An experience index mayrepresent the overall experience of a physician in dealing with aparticular type of conditions or diseases, beyond a mere count ofpatients who have visited the physician. In particular embodiments, anexperience index may also account for relative case volume, caseseverity, and variety seen by the physician. In particular embodiments,the experience index may be localized to be evaluated against physicianswithin a given state; within a given MSA; within a specialty classwithin the MSA; within a specialization within the specialty class; andwithin a condition group within the specialization based on diagnosesand procedure codes. In particular embodiments, using a localizedcontext for the experience index may allow for a very homogenous contextof analysis, may allow for environmental and population health factorsto be included in the analysis, and may narrow the context of theanalysis. The experience index is calculated using onlyprovider-reported insurance claims data, and thus will be free of anysubjective reviews from patients. Another advantage to the experienceindex may be that because it is calculated by comparing providers toeach other, just two providers in the same specialization in the samelocality are needed to calculate the experience index.

FIG. 7 illustrates an example method of calculating an experience indexfor a particular physician. The method may begin at step 710, wherematching-engine system 160 may identify all health-care providers orphysicians within a particular specialization in a specialty class andgeographic area. As an example and not by way of limitation, aspecialization may be cardiology within a specialty class of internalmedicine. In particular embodiments, the geographic area may be an MSAwithin a particular state. At step 720, matching-engine system 160 mayreceive patient-diagnosis codes corresponding to the identifiedhealth-care providers. As an example and not by way of limitation,patient-diagnosis codes may comprise ICD codes submitted by theproviders on insurance claims. In particular embodiments, thepatient-diagnosis codes may correspond to one or more condition groups.Each condition group may represent a similar group of conditions ordiseases. At step 730, matching-engine system 160 may determine allpatient-diagnosis codes corresponding to one or more of the providers.In particular embodiments, this step may comprise determining allpatient-diagnosis codes within a particular condition group for aprovider. In particular embodiments, each patient-diagnosis codereceived by matching-engine system 160 may further comprise a severityindex which represents whether the underlying instance of the conditionfor the patient-diagnosis code was non-chronic or chronic.

At step 740, matching-engine system 160 may calculate a patient-volumefor a particular condition group for a provider based on the receivedpatient-diagnosis codes and the corresponding severity factors. Inparticular embodiments, the volume of patients may be a relative measureof how many patients a particular provider saw compared to the rest ofthe identified providers. As an example and not by way of limitation, ina condition group for cardiac dysrhythmias, a total group of providersmay have seen 100 patients with chronic cases, and 200 patients withnon-chronic cases. Within the group of providers, Dr. Alex may have seen20 of the chronic cases, and 30 of the non-chronic cases. In thisexample, the case volume for Dr. Alex would be 20/100=0.20 for chroniccases of cardiac dysrhythmia, and 30/200=0.15 for non-chronic cases. Thetwo case volumes may be combined by adjusting for case severity. Inparticular embodiments, chronic cases may be multiplied by an additionalfactor. As an example and not by way of limitation, chronic cases may bedeemed to require three times as many resources as non-chronic cases.Therefore, chronic case volume may be weighted three times as much asnon-chronic cases. In the example above, Dr. Alex may have aseverity-normalized case volume of (0.20*3+0.15)/(3+1)=0.1875. A highernormalized case volume may indicate that the particular provider hasseen more overall cases in the condition group, and/or more severe casescompared to their peers.

At step 750, matching-engine system 160 may also calculate a varietyscore for the group of health-care providers. In particular embodiments,the variety score may represent the number of types of diseases seen bya particular provider within a specialization. Matching-engine system160 may determine a total variety of conditions by determining thenumber of distinct patient-diagnosis codes submitted by all identifiedproviders within a specialization. As an example and not by way oflimitation, matching-engine system 160 may receive fifty differentpatient-diagnosis codes from cardiologists within the Denver, Colo. MSA.Using only the distinct conditions seen within the geographic region mayadjust the variety for the population health, e.g. if no one in the MSAhas a particular condition within the condition group. Matching-enginesystem 160 may then determine the number of distinct patient-diagnosiscodes seen by a particular provider. In this example, if Dr. Jones, acardiologists from Denver, has seen forty distinct conditions with theirown patient-diagnosis codes, matching-engine system 160 may determinethat Dr. Jones' variety score is 40/50=0.8. In particular embodiments,the variety score may be calculated based on the number of conditiongroups within a specialization are seen by one provider versus theentire group of providers.

At step 760, matching-engine system 160 may calculate an experienceindex based on the severity-normalized case volume and the varietyscore. In particular embodiments, the experience index may be theproduct of the severity-normalized case volume and the variety score. Inparticular embodiments, the experience index may be a weighted sum oraverage of the severity-normalized case volume and the variety score. Asan example and not by way of limitation, a weighted average may be usedif matching-engine system 160 determines that the normalized case volumeis more indicative of a physician's experience than the variety of casesthe physician has seen.

Particular embodiments may repeat one or more steps of the method ofFIG. 7, where appropriate. Although this disclosure describes andillustrates particular steps of the method of FIG. 7 as occurring in aparticular order, this disclosure contemplates any suitable steps of themethod of FIG. 7 occurring in any suitable order. Moreover, althoughthis disclosure describes and illustrates particular components,devices, or systems carrying out particular steps of the method of FIG.7, this disclosure contemplates any suitable combination of any suitablecomponents, devices, or systems carrying out any suitable steps of themethod of FIG. 7.

FIGS. 8A-8B illustrate example embodiments of the experience engine ofmatching-engine system 160. In the example of FIG. 8A, matching-enginesystem 160 may identify health-care providers or physicians within aparticular specialization 840, within a particular specialty class 830,within a particular metropolitan statistical area (MSA) 820 within astate 810. The providers belonging to this narrowed group of specialistsby specialization 840 may comprise a peer group of providers todetermine the relative case volume and case variety for one of theproviders. In the example of FIG. 8B, the number of cases within aparticular condition group 850 may be identified within thespecialization 840. Within condition group 850, matching-engine system160 may identify a number of chronic cases 852, as well as a number ofnon-chronic cases 854. In particular embodiments, the number of cases852 and 854 may be for a specific provider within specialization 840. Inparticular embodiments, the number of cases 852 and 854 may be for allproviders within specialization 840. As discussed above, the ratio ofcases seen by one provider may be compared to the number of cases seenby all providers to calculate a relative case volume, which may benormalized by case severity.

FIG. 8C illustrates an example embodiment of determining a varietyscore. In this example, specialization 840 may comprise five physicians860. Over a predetermined period of time, these physicians 860 may havediagnosed patients with six distinct conditions 861-866. Each of theconditions 861-866 may comprise a different condition group; ormatching-engine system 160 may calculate variety based on distinctconditions within a condition group. Matching-engine system 160 maycompare the number of conditions seen by each physician versus the totalnumber of conditions seen by the group. In the example of FIG. 8C, Dr.McGann has seen three conditions; Dr. Eccleston has seen one; Dr.Tennant has seen two; Dr. Capaldi has seen two; and Dr. Smith has seenthree. Matching-engine system 160 may divide each of these numbers bythe total number of conditions for this specialization 840 to obtainvariety scores for the five doctors: Dr. McGann and Dr. Smith havevariety scores of 0.5; Dr. Eccleston has 0.167; and Dr. Tennant and Dr.Capaldi have variety scores of 0.33. Matching-engine system 160 may usethese variety scores in combination with a severity-normalized casevolume for each provider to determine the overall experience index.

User Interface

In particular embodiments, the performance scores and experience indexfor each physician may be used to determine whether the physician shouldbe recommended to a particular user based on a request sent by thatuser. FIG. 9 illustrates an example embodiment for selecting one or morephysicians for recommendation. Graph 900 show examples of physiciansplotted by their respective experience indices and performance scores.In particular embodiments, a single graph like graph 900 may only showthe plotted experience indices and performance scores for a particularbase-concept. In the example of FIG. 9, graph 900 includes acceptableranges 910 and 920 for the performance score and experience index,respectively. Acceptable ranges 910 and 920 create a region 930 of datapoints which are acceptable for recommendation to a user.Matching-engine system 160 may determine that physicians with datapoints within region 930 are acceptable for recommendation to the user.

In particular embodiments, one or more physicians or health-careproviders may be recommended to a user submitting a search query. FIG.10A illustrates an example user-interface 1010 for presenting a set ofphysicians to the user. In the example of FIG. 10A, a user may bepresented with treatment types 1011 and 1012, wherein each treatmenttype corresponds to a particular treatment, medical condition, orcondition-group. The treatment types 1011 and 1012 in the example ofFIG. 10A correspond to various types of treatments involving the knee,or a condition regarding the knee. For example, these categories may bepresented to a user who input “sharp knee pain.” As another example, theuser may have specifically searched for “ACL repair,” and the othertreatment types 1012 may be presented as related searches or categories.The user may interact with treatment types 1011 and 1012 to view moreinformation within the selected treatment type.

FIG. 10B illustrates an embodiment of the user-interface 1010 of FIG.10A once treatment type 1011 has been selected by the user. Treatmenttype 1011 may be expanded to a full graph, wherein the axes of the graphcorrespond to a cost value of the physician, and the experience of thephysician. In particular embodiments, the cost value may correlate tothe performance score of the physician. In particular embodiments, thecost value may correlate to the monetary costs corresponding to eachphysician for services related to treatment type 1011. Each physician1013 may be represented as a point on the graph, wherein each point's xand y values correspond to the physician's cost value and experience. Inparticular embodiments, each physician point 1013 may be represented bya shaded region, wherein the intensity of the shading corresponds to thestrength of the recommendation. As an example and not by way oflimitation, in FIG. 10B, point 1013 corresponding to Dr. Miles Forman isshaded black, which may indicate that Dr. Forman is stronglyrecommended. Other physician points with lighter shading may correspondto physicians that are not as strongly recommended to the user. Inparticular embodiments, a user may interact with physician point 1013 toview further information about the physician. FIG. 10C illustrates anexample embodiment of user-interface 1010 once a physician point 1013has been selected. In the example of FIG. 10C, additional physicianinformation 1014 may be presented to the user. In particularembodiments, physician information 1014 may comprise data reflectingreasons why the physician was recommended, such as quantitative measuresof experience, cost, or distance from the user.

FIG. 10D illustrates an example embodiment of a user-interface 1020 forpresenting recommended physicians in a list 1021. In the example of FIG.10D, a user may view additional information for each physician, and sortthe list 1021 by a column 1022. As an example and not by way oflimitation, the example of FIG. 10D shows a list 1021 sorted by thenumber of procedures performed by each physician in column 1022. Inparticular embodiments, the columns 1022 may display information that isnot a corresponding value to the experience index or performance scoreof the physician. As an example and not by way of limitation, users maynot instinctively grasp values such as experience indices or performancescores, but may understand concepts such as “number of proceduresperformed” and “duration of care.” In particular embodiments, theexperience index and performance score may be presented in aneasily-understood form. As an example and not by way of limitation, inFIG. 10D, the experience index may correspond to the column for“experience vs peers,” which only has values for “most,” “more,”“average,” and “less.” As another example, the performance score maycorrespond to the column for “cost vs peers,” which is represented by anumber of dollar signs.

FIG. 10E illustrates another example embodiment of a user-interface 1030for presenting recommended physicians. User-interface 1030 displaysinformation substantively identical to user-interface 1020 of FIG. 10D.In the example of FIG. 10E, user-interface 1030 displays the experienceof the physician and relative cost in a pie chart format 1031. In thisexample, more complete sections of the pie chart may correspond tobetter values for experience and cost.

Referral Network

In particular embodiments, matching-engine system 160 may be able tomonitor referrals made by a first physician to a second physician. Afirst physician may refer a patient to a second physician for furthermedical services, for example services that are not within the firstphysician's specialty or a service that the first physician feels thesecond physician may perform better for the patient. As an example andnot by way of limitation, if an internal medicine specialist is treatinga patient and diagnoses that the patient has a heart murmur, theinternist may refer the patient to a cardiologist for further diagnosisor treatment. The internist may recommend any cardiologist, or mayrecommend one by name to the patient.

In particular embodiments, matching-engine system 160 may comprise aphysician-referral-network which records existing and new referrals madebetween physicians of the physician-referral-network. In particularembodiments, the physician-referral network may comprise a plurality ofnodes and a plurality of edges connecting the nodes, wherein each nodecorresponds to a physician, and an edge connecting two physician-nodesindicates at least one direct referral between the physicians. Inparticular embodiments, the edges may comprise information referencing anumber of referrals made in either direction between two physicians, andwhat types of medical services are referenced in the referrals. Inparticular embodiments, information pertaining to the number and type ofreferrals may be stored with each node.

FIG. 11 illustrates an example embodiment of aphysician-referral-network for matching-engine system 160. Node 1110corresponding to a first physician is connected by a plurality of edgeswith a plurality of nodes 1120 corresponding to a plurality of secondphysicians. In particular embodiments, one edge may be used forreferrals from the first physician to a second physician, and a separateedge may be used for referrals in the other direction, e.g. from thesecond physician back to the first physician. In particular embodiments,the same edge may be used for referrals in both directions. Inparticular embodiments, matching-engine system 160 may only maintainedges for physicians within the same geographic location, such as anMSA. As an example and not by way of limitation, a physician may refer apatient to another physician across the country. This may be because thereferred physician is renowned as the best in the field, or because thepatient is traveling or moving to the location of the other physician.Matching-engine system 160 may consider these types of referrals to bean outlier referral, and not include the referral in thephysician-referral-network. In particular embodiments, matching-enginesystem 160 may record any and all referrals made between health-careproviders, regardless of location or specialties.

In particular embodiments, the physician-referral-network may be used toidentify unnecessary referrals. As an example and not by way oflimitation, a particular physician may have a habit of referringpatients to another physician for tests which are unnecessary for thepatient's condition or treatment. In particular embodiments, thereferring physician may simply be inefficient in making the referral. Inparticular embodiments, the referring physician may be intentionallymaking unnecessary referrals to drive up claims. Matching-engine system160 may be able to determine that a referral from a first physician to asecond physician tends to result in very low performance scores for oneor both physicians, indicating that the referral results in inefficienttreatment. Matching-engine system 160 may also be able to identifywhether a first physician is making a referral to a second physician whois below-average experience in the type of medical services that thereferral comprises, particularly if compared to other physiciansreferred to by the first physician or the first physician's peers. Inparticular embodiments, matching-engine system 160 may use a thresholdperformance score or experience index for referred physicians withrespect to a referring physician.

In particular embodiments, matching-engine system 160 may inform eitherthe referring physician or referred physician, or both, that thereferrals are inefficient. As an example and not by way of limitation,matching-engine system 160 may be able to inform a physician who alwaysrefers patients for a particular condition that the referral isunnecessary for treatment or is an inefficient use of resources. Inparticular embodiments, if a referring physician makes referrals toanother physician with resulting performance scores below the thresholdperformance score, matching-engine system 160 may filter out thatreferring physician from a set of recommended physicians for usersrequesting treatment in the same base concept or specialization as theunnecessary referrals. As an example and not by way of limitation, areferring physician Dr. Grant may see patients with migraines and/orvertigo. Dr. Grant may refer his migraine patients to Dr. Sattler, andrefer his vertigo patients to Dr. Harding. However, if the performancescore for patients referred to Dr. Harding fall below a threshold score,indicating that the referral may be unnecessary, matching-engine system160 may filter out Dr. Grant from the set of recommended physicians forusers searching for vertigo treatments. If the performance scores forpatients referred to Dr. Sattler remain above a threshold,matching-engine system 160 may keep recommending Dr. Grant for userslooking for physicians to treat migraines.

FIG. 12 illustrates an example method for maintaining a record ofpatient referrals between physicians in a physician-referral-network. Atstep 1210, a physician-referral-network may be accessed bymatching-engine system 160. At step 1220, matching-engine system 160 mayreceive a reference indicating a patient referral from a first physicianto one or more second physicians. At step 1230, matching-engine system160 may update the physician-referral-network based on the receivedreference. In particular embodiments, matching-engine system 160 maycreate a new edge connecting the nodes corresponding to the firstphysician and the second physicians. As an example and not by way oflimitation, the first physician may be referring a patient to the secondphysician for the first time. In particular embodiments, an edge mayalready exist between the first physician and the second physicians. Inthis case, matching-engine system 160 may update thephysician-referral-network to indicate that another referral has beenmade from the first physician to the second physician. At step 1240,matching-engine system 160 may receive performance scores from thesecond physicians, wherein the performance scores correspond to thepatients referred to the second physicians by the first physician.

At step 1250, matching-engine system 160 may calculate a referral-scorebased at least in part on the received performance scores. In particularembodiments, the referral-score may be calculated by determining anaverage performance score for all the referrals from the first physicianto the second physician. In particular embodiments, the average may beweighted based on the time of the referral, wherein recent referralsreceive a higher weight than older referrals. In particular embodiments,the referral-score may be further based on the experience index of thesecond physicians, compared to a threshold experience index. Inparticular embodiments, the threshold experience index may be theaverage experience index of other physicians referred to by the firstphysician. In particular embodiments, the threshold experience index maybe the average experience index of other physicians referred to by thefirst physician's peer group for similar conditions or treatments. Atstep 1260, matching-engine system 160 may determine if thereferral-score is below a threshold referral-score. The thresholdreferral-score may be specified by an administrator or another user ofmatching-engine system 160, or may be determined by matching-enginesystem 160. As an example and not by way of limitation, the thresholdreferral-score may be the bottom 5% of all referral scores. If aparticular referral-score is below the threshold, matching-engine system160 may take further action, such as informing the first physician orthe second physician, or by removing the first physician from the set ofrecommended physicians for one or more conditions or treatments.

Particular embodiments may repeat one or more steps of the method ofFIG. 12, where appropriate. Although this disclosure describes andillustrates particular steps of the method of FIG. 12 as occurring in aparticular order, this disclosure contemplates any suitable steps of themethod of FIG. 12 occurring in any suitable order. Moreover, althoughthis disclosure describes and illustrates particular components,devices, or systems carrying out particular steps of the method of FIG.12, this disclosure contemplates any suitable combination of anysuitable components, devices, or systems carrying out any suitable stepsof the method of FIG. 12.

In particular embodiments, matching-engine system 160 may consideradditional degrees of referrals made by physicians in calculating areferral-score. As an example and not by way of limitation, physicianDr. Grant may refer his patients with migraines to Dr. Sattler. Dr.Sattler may in turn refer some of those patients further to Dr. Malcolm.Matching-engine system 160 may calculate a referral-score for Dr.Sattler based on her referrals to Dr. Malcolm and any performance scoresreceived as a result; additionally, Dr. Malcolm's performance scores orDr. Sattler's referral-score for Dr. Malcolm for the migraine patientsmay be used as a factor in calculating the referral-score for Dr. Grant,the original referring physician. In particular embodiments, lowperformance scores by Dr. Malcolm with respect to Dr. Sattler may bereflected in Dr. Sattler's performance scores with respect to Dr. Grant.In particular embodiments, the additional step of performance scores andreferral-scores may mask any inefficiencies at the end of the referralchain. As an example and not by way of limitation, Dr. Sattler may beextremely resource-efficient in her work, such that any inefficienciesfrom Dr. Malcolm do not carry through to any performance scores orreferral-score from Dr. Grant's point of view. Therefore, it may bedesirable for matching-engine system 160 to determine separately for Dr.Grant if any physician in a referral chain is inefficient. In particularembodiments, matching-engine system 160 may inform Dr. Grant that hisreferrals to Dr. Sattler result in inefficiencies further down the line.

Privacy

In particular embodiments, one or more of the data objects of the onlinehealthcare provider search engine may be associated with a privacysetting. The privacy settings (or “access settings”) for an object maybe stored in any suitable manner, such as, for example, in associationwith the object, in an index on an authorization server, in anothersuitable manner, or any combination thereof. A privacy setting of anobject may specify how the object (or particular information associatedwith an object) can be accessed (e.g., viewed or shared) using theonline healthcare provider search engine. Where the privacy settings foran object allow a particular user to access that object, the object maybe described as being “visible” with respect to that user. As an exampleand not by way of limitation, a user of the online healthcare providersearch engine may specify privacy settings for a user-profile pageidentify a set of users that may access the work experience informationon the user-profile page, thus excluding other users from accessing theinformation. In particular embodiments, the privacy settings may specifya “blocked list” of users that should not be allowed to access certaininformation associated with the object. In other words, the blocked listmay specify one or more users or entities for which an object is notvisible. As an example and not by way of limitation, a user may specifya set of users that may not access photos albums associated with theuser, thus excluding those users from accessing the photo albums (whilealso possibly allowing certain users not within the set of users toaccess the photo albums). In particular embodiments, privacy settingsmay be associated with particular patient information. Privacy settingsmay specify how one or more items of patient information can be accessedusing the online healthcare provider search engine. In particularembodiments, privacy settings may allow users to opt in or opt out ofhaving their actions logged by matching-engine system 160 or shared withother systems (e.g., third-party system 170). In particular embodiments,the privacy settings associated with an object may specify any suitablegranularity of permitted access or denial of access. As an example andnot by way of limitation, access or denial of access may be specifiedfor particular users, user groups, user networks, all users (“public”),no users (“private”), users of third-party systems 170, particularapplications (e.g., third-party applications, external websites), othersuitable users or entities, or any combination thereof. Although thisdisclosure describes using particular privacy settings in a particularmanner, this disclosure contemplates using any suitable privacy settingsin any suitable manner.

In particular embodiments, one or more servers 162 may beauthorization/privacy servers for enforcing privacy settings. Inresponse to a request from a user (or other entity) for a particularobject stored in a data store 164, matching-engine system 160 may send arequest to the data store 164 for the object. The request may identifythe user associated with the request and may only be sent to the user(or a client system 130 of the user) if the authorization serverdetermines that the user is authorized to access the object based on theprivacy settings associated with the object. If the requesting user isnot authorized to access the object, the authorization server mayprevent the requested object from being retrieved from the data store164, or may prevent the requested object from be sent to the user.Although this disclosure describes enforcing privacy settings in aparticular manner, this disclosure contemplates enforcing privacysettings in any suitable manner.

Miscellaneous

Herein, “or” is inclusive and not exclusive, unless expressly indicatedotherwise or indicated otherwise by context. Therefore, herein, “A or B”means “A, B, or both,” unless expressly indicated otherwise or indicatedotherwise by context. Moreover, “and” is both joint and several, unlessexpressly indicated otherwise or indicated otherwise by context.Therefore, herein, “A and B” means “A and B, jointly or severally,”unless expressly indicated otherwise or indicated otherwise by context.

The scope of this disclosure encompasses all changes, substitutions,variations, alterations, and modifications to the example embodimentsdescribed or illustrated herein that a person having ordinary skill inthe art would comprehend. The scope of this disclosure is not limited tothe example embodiments described or illustrated herein. Moreover,although this disclosure describes and illustrates respectiveembodiments herein as including particular components, elements,functions, operations, or steps, any of these embodiments may includeany combination or permutation of any of the components, elements,functions, operations, or steps described or illustrated anywhere hereinthat a person having ordinary skill in the art would comprehend.Furthermore, reference in the appended claims to an apparatus or systemor a component of an apparatus or system being adapted to, arranged to,capable of, configured to, enabled to, operable to, or operative toperform a particular function encompasses that apparatus, system,component, whether or not it or that particular function is activated,turned on, or unlocked, as long as that apparatus, system, or componentis so adapted, arranged, capable, configured, enabled, operable, oroperative.

What is claimed is:
 1. A method comprising: accessing, by one or morecomputing devices, a physician-referral-network, thephysician-referral-network comprising a plurality of nodes and aplurality of edges connecting the nodes, each of the edges between twoof the nodes representing a single degree of separation between them,wherein: each node corresponds to a physician; and each edge correspondsto one or more patient-referrals made from one of the connected nodes tothe other; receiving, by one or more computing devices, one or morereferences, each of the one or more references indicating apatient-referral from a first physician to one or more secondphysicians; updating, by one or more computing devices, one or moreedges connecting the node corresponding to the first physician and oneor more nodes corresponding to the second physicians; receiving, by oneor more computing devices, one or more performance-scores from thesecond physicians, each of the performance-scores corresponding to thepatient-referral; calculating, by one or more computing devices, areferral-score for the first physician based at least in part on theperformance-scores from the second physicians; determining, by one ormore computing devices, if a referral-score for the first physician isbelow a threshold referral-score.
 2. The method of claim 1, wherein anedge of the physician-referral-network indicates one or morepatient-referrals in one direction from a first physician to a secondphysician.
 3. The method of claim 1, wherein an edge of thephysician-referral-network indicates patient-referrals from the firstphysician to the second physician, and from the second physician to thefirst physician.
 4. The method of claim 1, wherein the patient-referralis associated with one or more base-concepts, wherein each base-conceptcorresponds to a type of medical treatments or medical services.
 5. Themethod of claim 4, wherein a referral-score for the first physicianbelow the threshold referral-score indicates that the one or morepatient-referrals are unnecessary.
 6. The method of claim 5, furthercomprising notifying the first physician or the second physician thatthe patient-referrals are unnecessary.
 7. The method of claim 5, furthercomprising removing the first physician or the second physician fromrecommendation to users of a matching-engine system associated with thephysician-referral-network.
 8. The method of claim 7, wherein the firstphysician or second physician is removed from recommendation for one ormore base-concepts associated with the unnecessary patient-referrals. 9.The method of claim 1, wherein the performance-score is based on one ormore cost factors associated with the second physician and acare-episode corresponding to the patient-referral.
 10. The method ofclaim 9, wherein the care-episode comprises: a base-concept; one or moresub-concepts associated with the base-concept; and a resource-usagefactor for one or more medical treatments associated with thecare-episode.
 11. The method of claim 10, wherein the one or moremedical treatments correspond to one or more Current ProceduralTerminology (CPT) codes.
 12. The method of claim 10, wherein theresource-usage factor comprises one or more relative value units (RVU)corresponding to the one or more CPT codes.
 13. The method of claim 1,wherein the reference to a patient-referral further comprises areference to a second patient-referral from the second physician to oneor more third physicians.
 14. The method of claim 13, wherein theperformance-score for a second physician is based at least in part on aperformance-score for a third physician with respect to the secondpatient-referral.
 15. The method of claim 13, further comprising:determining that the second patient-referral is unnecessary; andnotifying the first physician of the unnecessary secondpatient-referral.
 16. The method of claim 13, further comprising:determining that the second patient-referral is unnecessary; andremoving the first physician from recommendation to users of amatching-engine system associated with the physician-referral-network.17. The method of claim 1, further comprising determining anexperience-score for the second physician with respect to one or moreconditions corresponding to the patient-referral.
 18. The method ofclaim 17, wherein the second physician is determined to be unqualifiedif the experience-score is below a threshold experience-score.
 19. Oneor more non-transitory, computer-readable storage media embodyingsoftware that is operable when executed to: access aphysician-referral-network, the physician-referral-network comprising aplurality of nodes and a plurality of edges connecting the nodes, eachof the edges between two of the nodes representing a single degree ofseparation between them, wherein: each node corresponds to a physician;and each edge corresponds to one or more patient-referrals made from oneof the connected nodes to the other; receive one or more references,each of the one or more references indicating a patient-referral from afirst physician to one or more second physicians; update one or moreedges connecting the node corresponding to the first physician and oneor more nodes corresponding to the second physicians; receive one ormore performance-scores from the second physicians, each of theperformance-scores corresponding to the patient-referral; calculate areferral-score for the first physician based at least in part on theperformance-scores from the second physicians; determine if areferral-score for the first physician is below a thresholdreferral-score.
 20. A system comprising: one or more processors; and amemory coupled to the processors comprising instructions executable bythe processors, the processors being operable when executing theinstructions to: access a physician-referral-network, thephysician-referral-network comprising a plurality of nodes and aplurality of edges connecting the nodes, each of the edges between twoof the nodes representing a single degree of separation between them,wherein: each node corresponds to a physician; and each edge correspondsto one or more patient-referrals made from one of the connected nodes tothe other; receive one or more references, each of the one or morereferences indicating a patient-referral from a first physician to oneor more second physicians; update one or more edges connecting the nodecorresponding to the first physician and one or more nodes correspondingto the second physicians; receive one or more performance-scores fromthe second physicians, each of the performance-scores corresponding tothe patient-referral; calculate a referral-score for the first physicianbased at least in part on the performance-scores from the secondphysicians; determine if a referral-score for the first physician isbelow a threshold referral-score.